package com.ss.service;

import com.ss.plugins.sql.core.SummerQuery;
import com.ss.plugins.sql.model.SummerApply;
import com.ss.plugins.sql.model.SummerPage;
import com.ss.service.enmus.HasAuthType;

import java.util.List;

/**
 * 搜索服务
 * @Author: 夏十七
 * @Date: 2019/7/31 21:46
 * @Version 1.0
 */
public interface SummerSearchPlus {


    /**
     * 获取有权限审核的
     * @param apiPath 凭证
     * @param memberId 用户id
     * @param query 查询条件
     * @param clz 申请类 的 class
     * @param <T> 申请类 泛型
     * @param type HasAuthType枚举 查询条件
     * @return LIST
     */
    <T extends SummerApply> List<T> findWaitAudited(String apiPath, String memberId, SummerQuery query, Class<T> clz, HasAuthType type);


    /**
     * 获取有权限审核的
     * @param apiPath 凭证
     * @param memberId 用户id
     * @param query 查询条件
     * @param clz 申请类 的 class
     * @param <T> 申请类 泛型
     * @param type HasAuthType枚举 查询条件
     * @param size 每页大小
     * @param page 当前页
     * @return LIST
     */
    <T extends SummerApply> SummerPage<T> findWaitAudited(String apiPath, String memberId, SummerQuery query, Class<T> clz, HasAuthType type, int page, int size);

}
